package com.ltx.blog_bam.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 将跨域请求写在类中
 * @Configuration 声明这是一个配置类
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    static final String ORIGINS[] = new String[] {"GET","DELETE","POST","PUT","OPTIONS"};

    /**
     * addCorsMappings
     * 在cors的注册器上 声明哪些请求可以跨域方法
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                //运行哪些请求类型 跨域方法
                //OPTIONS 预检请求 在访问跨域方法之前 浏览器对跨域的资源会发送一个
                //OPTIONS请求 测试一下当前方法是否支持跨域
                .allowedMethods(ORIGINS)
                //Origin 允许远程访问的域名
                //*代表所有ip都可以方法 在测试时可以使用此配置
                .allowedOrigins("*")
                //是否允许当前请求跨域携带cookie
                .allowCredentials(true)
                //OPTIONS请求 存活时间
                .maxAge(3600)
                .allowedHeaders("*");
    }
}
